home *** CD-ROM | disk | FTP | other *** search
- DVSM Samples
- ------------
-
- Jedes DVS Sample beginnt mit folgendem Header:
-
- typedef struct
- {
- char magic[6];
- int headlen;
- unsigned int freq;
- char pack;
- char mode;
- long blocklen;
- } DVSMHEAD;
-
- Bedeutung der Einträge:
- -----------------------
-
- magic:
- "DVSM\0\0"
- headlen:
- Headerlänge, d.h. Abstand der Sounddaten vom Dateibeginn
- Unbedingt auswerten, wegen den Erweiterungsblöcken (siehe unten)!!
- Die komplette Headerlänge muß gerade sein!
- freq:
- Samplingfrequenz:
- 0-7 : Erlaubte CODEC Vorteiler (0: 8kHz ... 7: 49kHz)
- >256: Samplingfrequenz in Hz
- pack:
- 0: Ungepackt
- 2: DVS Packmethode
- 4: DVS Voicepackmethode (auf WinRec Pro)
- In Zukunft sind auch andere Werte denkbar! Also nicht nur auf 'pack>0' sondern auf
- 'pack==2' oder 'pack==4' abfragen!
- mode:
- Bit 0: 8/16 Bit
- Bit 1: Stereo/Mono
- blocklen (im Moment nur gültig falls 'pack'==2 oder 'pack'==4):
- Länge eines gepackten Blocks (= Abstand der Stützwerte). Bei gepackten Samples
- unbedingt auswerten. Ist kein fester Wert! WinRec schreibt (je nach Buffer)
- verschiedene Blocklängen! Die Blocklänge muß gerade sein!
-
- Erweiterungsblöcke
- ------------------
-
- DVS ist ein modulares Format. Nach dem oben beschriebenen Header können noch (fast)
- beliebig viele Erweiterungsblöcke folgen. Die Blöcke gehören zum Header, d.h. der
- Eintrag 'headlen' umfaßt auch die Erweiterungen! So können (z.B. ältere) Programme
- die zusätzlichen Informationen Überspringen. Der "Minimalheader" ist immer 16 Bytes lang,
- nämlich die oben beschriebenen Einträge.
-
- Ein Block hat folgende Form:
-
- 4 Byte (cookie) Kennung des Blocks
- 2 Byte (len) Länge des Blocks
- len-6 Bytes Daten
-
- WinRec versteht ab der Version V1.38 folgende Erweiterungen:
-
- Kennung Länge der Daten Bedeutung
- -----------------------------------------------------------------------------------------
- 'CLCK' 1 Word 0: Interner Takt, 1: Extern CD, 2: Extern DAT
-
- 'PEAK' 4 Byte je ein Word für linken und rechten Kanal mit dem höchsten
- auftretenden Samplewert
-
- 'DSPE' x Bytes DSP Programm (Soundeffekt !!) im Binary Format
-
- 'PARA' x Bytes x Parameter für den Soundeffekt. Darf nicht vor dem 'DSPE'
- Block stehen!
-
- 'PACK' 128 bzw. 8 Bytes Deltapacktabelle für Distanzwerte. Wird (falls vorhanden)
- anstelle der Standardtabelle (s.u.) verwendet.
-
- 'INFO' x Bytes Infotext (z.B. voller Titel)
-
- Weiterhin ist definiert, wird aber (im Moment) noch nicht von WinRec genutzt:
-
- 'KARA' x Bytes Karaoketext (Beschreibung siehe unten)
-
-
- Die gesamte Headerlänge kann und darf 65535 Bytes nicht überschreiten. Ein Programm sollte
- wenn möglich alle Erweiterungsblöcke durchgehen und anhand der Kennung entscheiden, ob
- es die Information nutzen kann.
-
- Karaoketextformat
- -----------------
- long cookie='KARA'
- int len
- int textlen
-
- danach folgt der Text, der im ASCII Format zeilenweise abgelegt ist. Eine
- Textzeile darf nicht länger als 40 Zeichen sein. Nach dem Text folgt die
- Takttabelle. Sie enthält für jedes Wort des Textes ein 4-Bytewert der den
- zeitlichen Abstand zum vorherigen Wort angibt. Die Angabe erfolgt in der Einheit
- 1/Samplingfrequenz
-
-
- Packformat
- ----------
- (im Moment nur für 16 Bit Stereo oder Mono Samples!!!!)
-
- Ein Block ist wie folgt aufgebaut (Länge siehe 'blocklen'):
-
- 1. Soundword Links (16 Bit)
- 1. Soundword Rechts (16 Bit)
- 1. Distanzwert Links (8 Bit)
- 1. Distanzwert Rechts (8 Bit)
- .
- .
- .
- n. Distanzwert Links (8 Bit)
- n. Distanzwert Rechts (8 Bit)
-
-
- Distanzwerte sind Zeiger auf eine Tabelle mit den 'echten'
- 16 Bit Distanzwerten. Die Tabelle enthält Funktionwerte der
- Funktion
- / -1.084618362^-x für x<0 (-128 bis -1)
- f(x)= { 0 für x=0 (0)
- \ 1.084618362^x für x>0 (1 bis 127)
-
- Die Tabelle ist (logischerweise) 256 Bytes lang!
-
- Voicepackformat
- ---------------
- (im Moment nur für 16 Bit Stereo oder Mono Samples!!!!)
-
- Ein Block ist wie folgt aufgebaut (Länge siehe 'blocklen'):
-
- 1. Soundword Links (16 Bit)
- 1. Soundword Rechts (16 Bit)
- 1. Distanzwert Links (4 Bit)
- 1. Distanzwert Rechts (4 Bit)
- .
- .
- .
- n. Distanzwert Links (4 Bit)
- n. Distanzwert Rechts (4 Bit)
-
-
- Distanzwerte sind Zeiger auf eine Tabelle mit den 'echten'
- 16 Bit Distanzwerten:
-
- -8192,-4096,-2048,-1024,-512,-256,-64,0,64,256,512,1024,2048,4096,8192
-
-
-
- Andreas Binner
-